package org.edu.common;

import java.util.Properties;
import java.io.IOException;
import java.io.InputStream;

/**
 * 读取属性文件(.properties)的基本抽象类
 * 
 * @author dongwenping
 * @date 2010
 * @version 1.0
 */
public abstract class PropertiesConfig {

	public abstract void setProp(Properties p);

	public abstract Properties getProp();

	/**
	 * 加载属性文件
	 * 
	 * @param configFile
	 *            属性文件(.properties)的类路径
	 */
	public void loadNew(String configFile) {
		setProp(null);
		Properties prop = new Properties();
		ClassLoader loader = Thread.currentThread().getContextClassLoader();
		InputStream is = loader.getResourceAsStream(configFile);
		try {
			prop.load(is);// 从输入流中读取属性列表
			setProp(prop);
		} catch (IOException ioEx) {
			ioEx.printStackTrace();
		}
	}

	/**
	 * 根据参数名（key）从属性文件(.properties)中获得参数值（value）
	 * 
	 * @param key
	 * @return
	 */
	public String getProperty(String key) {
		Properties prop = getProp();

		if (prop == null) {
			return null;
		}
		if (key != null) {
			return prop.getProperty(key);
		} else {
			return null;
		}
	}
}